컬렉션12 : 스택(Stack) 클래스 :: C# 인트로[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

C# 인트로
[1]
등록일:2008-03-27 19:59:57 (0%)
작성자:갤러리정
제목:컬렉션12 : 스택(Stack) 클래스

7.12 스택(Stack) 클래스

 

Stack 클래스는 데이터의 Queue 클래스와 비슷하지만 데이터의 삽입과 추출이 후입선출(Last-In First-Out)이라는 측면에서 그 쓰임새가 다릅니다. , 제일 마지막에 들어간 데이터가 제일 먼저 나오는 메모리 구조를 클래스화한 것입니다. 다음의 Stack 클래스의 프로토타입입니다.

 

Stack 클래스의 프로토타입

public class Stack : ICollection, IEnumerable, ICloneable

 

데이터를 삽입할 때는 Push() 메서드를 사용하며 데이터를 추출할 때는 Pop() 메서드를 사용합니다. 그리고, 추출할 데이터를 삭제하지 않고 데이터만을 가져 올 때는 Queue와 동일하게 Peek() 메서드를 이용합니다.

 

Stack 클래스의 특징

후입선출(Last-In-First-Out) 컬렉션 클래스

Push() 메서드는 Stack의 맨 위에 요소를 삽입

Pop() 메서드는 Stack의 맨 위에 있는 요소를 삭제하고 데이터를 반환

Peek() 메서드는 Stack의 맨 위에 있는 요소를 제거하지 않고 반환

 

&

StackTest.cs

Ü Stack을 테스트하는 예제

using System;
using System.Collections;

public class 
StackTest{
  
static void 
Main(){
    Stack stack= 
new 
Stack();
    stack.Push(
"Hi"
);
    stack.Push(
"Hello"
);
    stack.Push(
"World"
);
    stack.Push(
"7777"
);
    Print(
"1. Stack
 목록:", stack );
    object obj = stack.Pop();Console.WriteLine(
"2. Pop:{0}"
, obj );
    obj = stack.Pop();Console.WriteLine(
"3. Pop:{0}"
, obj );
    Print(
"4. Pop
 두번한 후의 목록:",stack );
    obj = stack.Peek();Console.WriteLine(
"5. Peek:{0}"
, obj );
  } 
//main

  
public static void 
Print(string info, IEnumerable myCollection ){
    Console.Write(info+
"\n\t"
);
    IEnumerator myEnumerator = myCollection.GetEnumerator();
    
while 
( myEnumerator.MoveNext() )
      Console.Write( 
"{0}, "
,myEnumerator.Current );
    Console.WriteLine();
  }
}/
class

C:\C#Example\07>csc  StackTest.cs

C:\C#Example\07>StackTest

1. Stack 목록:

        7777, World, Hello, Hi,

2. Pop:7777

3. Pop:World

4. Pop 두번한 후의 목록:

        Hello, Hi,

5. Peek:Hello

 

Stack 객체를 생성한 후 Stack 4개의 데이터를 삽입합니다. 이 때 사용하는 메서드는 Push() 메서드입니다.

 

Stack stack= new Stack();

stack.Push("Hi");

stack.Push("Hello");

stack.Push("World");

stack.Push("7777");

 

삽입한 데이터의 삭제와 추출을 동시에 하는 Pop() 메서드를 이용합니다.

 

object obj = stack.Pop();

obj = stack.Pop();

 

Peek() 메서드를 사용하여 데이터의 삭제없이 데이터를 추출하고 있습니다.

 

obj = stack.Peek();

 

Stack 메모리 구조를 클래스화했기 때문에 후입선출의 원리를 지키면서 삽입과 삭제가 이루어지고 있는 것에 유의하시면 쉽게 이해하실 수 있습니다.
[본문링크] 컬렉션12 : 스택(Stack) 클래스
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=3047
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.